<?php
	
	//$table  		数据表
	//$num 			每页条数
	//$rows 		总条数
	//$p 			当前页码
	//$tag 			a标签之前需要添加的标签
	//$etag 		a标签之后需要添加的标签
/******************************分页*****************************************/
	// $p = isset($_GET['p'])?$_GET['p']:1;

	// $num = 3;
	// //除去的条数
	// $c = ($p-1)*$num;
	// $feild = 'id,title,remark,content,create_time';
	// $data = dbselect($con,$table,$feild,'',"create_time desc","{$c},{$num}");
	

	function page($con,$table,$p,$rows,$num,$purl='',$tag='',$etag=''){


	//总数据量
	// $rows = count(dbselect($con,$table));
	
	//总页数
	$allpage = ceil($rows/$num);
	//当前页

	//页码
	$prev = ($p == 1)?1:$p-1;
	$next = ($p == $allpage)?$allpage:$p+1;
	
	$page = '';

	if(M=='admin'){
		$page .= $tag."<a href='index.php?".$_SERVER["QUERY_STRING"]."&p=1' id='home'>首页</a>".$etag;
		$page .= $tag."<a href='index.php?".$_SERVER["QUERY_STRING"]."&p={$prev}'>上一页</a>".$etag;
	//	for($i=1;$i<=$allpage;$i++){
	//		$page .= "<a href='index.php?p={$i}'>{$i}</a>";
	//	}
		for($i = 1 ; $i <= $allpage ; $i++){
			if($p == $i) {
				$page .= $tag."<a href = 'index.php?".$_SERVER["QUERY_STRING"]."&p={$i}' class='number current'>{$i}</a>".$etag;
			} elseif($i < 3) {
				$page .= $tag."<a href = 'index.php?".$_SERVER["QUERY_STRING"]."&p={$i}'>{$i}</a>".$etag;
			} elseif($allpage-2 < $i) {
				$page .= $tag."<a href = 'index.php?".$_SERVER["QUERY_STRING"]."&p={$i}'>{$i}</a>".$etag;
			}
		}
		$page .= $tag."<a href='index.php?".$_SERVER["QUERY_STRING"]."&p={$next}'>下一页</a>".$etag;
		$page .= $tag."<a href='index.php?".$_SERVER["QUERY_STRING"]."&p={$allpage}'>尾页</a>".$etag;
	}else{
		
		$page .= $tag."<a href='index.php?p={$prev}{$purl}'>&lt;</a>".$etag;
	//	for($i=1;$i<=$allpage;$i++){
	//		$page .= "<a href='index.php?p={$i}'>{$i}</a>";
	//	}
		for($i = 1 ; $i <= $allpage ; $i++){
			if($p == $i) {
				$page .= $tag."<a href = 'index.php?p={$i}{$purl}' class='number current'>{$i}</a>".$etag;
			} elseif($i < 3) {
				$page .= $tag."<a href = 'index.php?p={$i}{$purl}'>{$i}</a>".$etag;
			} elseif($allpage-2 < $i) {
				$page .= $tag."<a href = 'index.php?p={$i}{$purl}'>{$i}</a>".$etag;
			}
		}

		$page .= $tag."<a href='index.php?p={$next}{$purl}'>&gt;</a>".$etag;
	}
	
	

/******************************分页*****************************************/


	return $page;
}

/*******************************分页****************************/
	//dbselect($con,$table,$field='*',$where=null,$order=null,$limit=null)
	
	//总条数
	

	function child($array , $pid=0){

	$arr = array();

	$tem = array();

	foreach( $array as $val){

		if($val['pid'] == $pid){

			$tem = child( $array,$val['id']);
			
			$tem && $val['child'] = $tem; //['child']父级下的子级

			$arr[] = $val;

		}

	}

	// var_dump( $arr);
	return $arr;
}


// $width = 100;
// $height = 40;
// $length = 4;

//验证码函数
function verify($session,$width=100,$height=40,$length=4){



//设置画布
$image = imagecreatetruecolor($width,$height);
//添加颜色
$bgcolor = imagecolorallocate($image,  mt_rand(150,254) , mt_rand(150,254) ,  mt_rand(150,254));

$green = imagecolorallocate($image ,  mt_rand(180,254) , mt_rand(180,254) ,  mt_rand(180,254));
//填充
imagefill($image , 0, 0, $bgcolor);

//验证码的字符串
$str = "123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

//填充字体的X和Y
$posX = $width/$length;

$posY = $height/1.5;



//生成验证码中的点

for($i=0;$i<$width*$height/$length/5;$i++){
	$pixelcol = imagecolorallocate($image,mt_rand(0,120),mt_rand(0,120),mt_rand(0,120));
	imagesetpixel($image, mt_rand(0,$width), mt_rand(0,$height), $pixelcol);

}

for($i=0;$i<5;$i++){
	$linecol = imagecolorallocate($image, mt_rand(0,120),mt_rand(0,120),mt_rand(0,120));
	imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $linecol);

}
//生成验证码中的字符
$strs = '';
for($i=0;$i<$length;$i++){


	$mt = substr($str,mt_rand(0,strlen($str)),1);
	$strs .= $mt;
	$codecol = imagecolorallocate($image,mt_rand(0,120),mt_rand(0,120),mt_rand(0,120));
	//array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
	imagettftext($image, 18, mt_rand(-20,20), $posX*$i+$posX/3, $posY, $codecol, "msyh.ttf", "$mt");

}



$_SESSION["$session"] = md5(strtolower($strs));

// echo $col =  mt_rand(0,254)
header("Content-type:image/png");

$img = imagepng($image);


imagedestroy($image);



}
/**************弹窗************/

function message($mes , $url , $type=1){

	//判断提示的类型$type是否等于1
	//如果$type等于1，调转的地址为$url的指定地址
	if($type==1){

		// 如果$type等于1，调转的地址为$url的指定地址
		echo "<script>alert('{$mes}');window.location.href='{$url}';</script> ";die;

	}else{

		// 如果$type不等于1，那么返回到上一步操作
		echo "<script>alert('{$mes}');window.history.back(-1);</script> ";die;
	}


}


/***************************图片上传******************************************/


function uploadsIMG($fileimg){

/*-------------------------检查文件操作---------------------------*/

		if($fileimg['error']!=0){

			switch($fileimg['error']){

            case 1: message('上传文件超过php.ini中upload_max_filesize 规定的最大值','',0);
            break;

            case 2: message('上传文件的大小超过了HTML 表单中MAX_FILE_SIZE选项指定的最大值','',0);
            break;

            case 3: message('文件只有部分被上传','',0);
            break;

            case 4: message('没有发现上传文件内','',0);
            break;

            case 5: message('找不到临时文件夹。','',0);
            break;

            case 6: message('文件写入失败','',0);
            break;

            default: message('未知错误','',0);
            break;

        	}

		}

		
		// var_dump($fileimg['type']);die;
		$typeAllow = array("image/jpg","image/png","image/jpeg","image/gif");

		if(!in_array($fileimg['type'], $typeAllow)){

			die; message('上传文件类型不符合要求');
		}

		/*------------------文件夹操作----------------------------*/
		$topPath = "uploads/";
		$savePath = date("Y/m/d/");

		$Path = $topPath.$savePath;

		if(!file_exists($Path)){
			mkdir($Path,0777,true);
		}


		// var_dump($Path);

		//pathinfo — 返回文件路径的信息
   	 	//pathinfo ( string $path [, int $options = PATHINFO_DIRNAME[路径中的目录部分] | PATHINFO_BASENAME[路径中的文件名部分] | PATHINFO_EXTENSION[文件的后缀名] | PATHINFO_FILENAME[文件的名称] ] )
/*---------------------文件路径操作------------------------*/
		$ext = pathinfo($fileimg['name'],PATHINFO_EXTENSION);

		$fileName =  date('Ymd').mt_rand(1000,9999).".".$ext;

		$pathName = $Path.$fileName;

		// var_dump($pathName);








			// 检查
		if(is_uploaded_file($fileimg['tmp_name'])){
/*--------------------------移动文件操作-------------------------------*/
			if(!move_uploaded_file($fileimg['tmp_name'], $pathName)){

				 message('上传失败','',0);die;
			}

		}else{
			message('文件上传不合法','',0);
		}





		return $pathName;
}


/***************************图片水印******************************************/

//图片水印
function watermark($dst,$src){
	//确定一张目标图片，一张水印图片
	  //添加水印的图片，目标图片

	  //水印图片:png图片是透明底的图片

	//得到的图片只是一个路径，路径是不能完成水印、缩略图的操作。因此需要创建图像，把图片真正的放在服务器操作[将服务器当成是ps]
	//创建图像：

	$data = getimagesize($dst);
	$type = $data['mime'];

	if($type=='image/jpeg'){		//目标图片的图像
		$dst_img = imagecreatefromjpeg($dst);

	}else if($type=='image/png'){
		$dst_img = imagecreatefrompng($dst);

	}else{
		$dst_img = imagecreatefromgif($dst);
	}
				


	$wdata = getimagesize($src);
	$wtype = $wdata['mime'];

	if($wtype=='image/jpeg'){		//水印图片的图像

		$src_img = imagecreatefromjpeg($src);	

	}else if($wtype=='image/png'){

		$src_img = imagecreatefrompng($src);

	}else{

		$src_img = imagecreatefromgif($src);
	}
			
	


	//宽度高度的比较
	list($dst_width , $dst_height) = getimagesize($dst);		//目标图片的宽度高度

	//获取目标图片的类型：
	


	list($src_width , $src_height) = getimagesize($src);		//水印图片的宽度高度

	//做缩略图：指定宽高缩略、等比例缩略：见php文件:thumb.php

	//只要水印图片的宽度高度，不超过目标图片的宽度高度的3分之一
	$dst_w = floor($dst_width / 3);	//目标图片的宽度3分之1

	$dst_h = floor($dst_height / 3);

	//后期注意：如果水印图比目标图片大的时候，将水印图进行缩略
	if($src_width > $dst_w || $src_height > $dst_h){

		message('水印图片过大，请缩略后再提交','',0); die; //做样子
	}

	//拷贝跟合并图片							拷贝整张水印图
	imagecopy( $dst_img , $src_img, $dst_width-$src_width-10, $dst_height-$src_width-10, 0, 0,$src_width, $src_height );

	
	//生成图片：图片操作完，一定要生成
	//根据目标图片的类型选择相对应的类型函数
	if($type=='image/jpeg'){

		imagejpeg($dst_img , $dst);	

	}else if($type=='image/png'){

		imagepng($dst_img , $dst);
		
	}else{

		imagegif($dst_img , $dst);
	}

	
}

/******************************文字水印*****************************************/
	



function textwater($dst,$mt){



	//文字
	$data = getimagesize($dst);
	$type = $data['mime'];

	
 	

 	if($type=='image/jpeg'){

		$dst_img = imagecreatefromjpeg($dst);	

	}else if($type=='image/png'){

		$dst_img = imagecreatefrompng($dst);	

	}else{

		$dst_img = imagecreatefromgif($dst);	
	}



	$col = imagecolorallocatealpha($dst_img, 200, 100, 100, 50);

	$src = imagettftext($dst_img, 18, 0, 10, 28, $col, "msyh.ttf", "$mt");


	// imagecopy($dst_img, $src, 0, 0, 120, 120, 100, 100);






	imagepng($dst_img,$dst);
	//'文字水印';

	

}

/***********************************缩略图(固定尺寸)***********************************************/
function thumb($water_img,$thu_width = 300,$thu_height = 300,$pathEnd = ''){

	//1.先得知原图的宽度高度
	list($width , $height) = getimagesize($water_img);

	//2.判断原图的宽度比缩略规定的宽度大，进行缩略
	//判断原图的高度比缩略规定的高度大，进行缩略
	// if( $height > $width){

		$bili_h = $thu_width;
		//计算缩略图的宽度
		// $bili_w =  ceil($bili_h * $width / $height);
		
	// }else{

		$bili_w = $thu_height;
		//计算缩略图的宽度
		// $bili_h =  ceil($bili_w * $height / $width);
	// }

	// if($bili_h > $height){
	// 	return false;
	// 	// $bili_h = $height/2;
	// }

	// if($bili_w > $width){

	// 	return false;
	// 	// $bili_w = $width/2;
	// }

	$data = getimagesize($water_img);

	$type = $data['mime'];


	//2.目标图片径创建图像

	if($type=='image/jpeg'){		//目标图片的图像
		$dimg = imagecreatefromjpeg($water_img);

	}else if($type=='image/png'){
		$dimg = imagecreatefrompng($water_img);

	}else{
		$dimg = imagecreatefromgif($water_img);
	}


	

	//3.创建空白画布
	$simg = imagecreatetruecolor($bili_w , $bili_h);

	//4.将图像拷贝到画布中
	////imagecopyresampled (画布  , 目标图像 ,  画布粘贴的X轴坐标 , 画布粘贴的Y轴坐标 , 目标图像拷贝开始的X坐标 , 目标图像拷贝开始的Y坐标 ,画布的宽度 , 画布的高度,目标图像拷贝的宽度 , 目标图像拷贝的高度  )
	imagecopyresampled($simg , $dimg , 0 , 0 , 0, 0,$bili_w , $bili_h , $width , $height);


	//5.生成图片
	if($type=='image/jpeg'){		//目标图片的图像
		$ress = imagejpeg($simg , $water_img.$pathEnd.'.thumb.jpeg');

	}else if($type=='image/png'){
		$ress = imagepng($simg , $water_img.$pathEnd.'.thumb.png');

	}else{
		$ress = imagegif($simg , $water_img.$pathEnd.'.thumb.gif');
	}
	

	if($ress){

		//生成图片成功：返回
		if($type=='image/jpeg'){		//目标图片的图像

			return $water_img.$pathEnd.'.thumb.jpeg';

		}else if($type=='image/png'){

			return $water_img.$pathEnd.'.thumb.png';

		}else{
			
			return $water_img.$pathEnd.'.thumb.gif';
		}
		

	}else{

		//生成图片失败：false
		return false;
	}

}

function retio_thumb($water_img,$max_size=300){
	//1.先得知原图的宽度高度
	list($width , $height) = getimagesize($water_img);

	//2.判断原图的宽度比缩略规定的宽度大，进行缩略
	//判断原图的高度比缩略规定的高度大，进行缩略
	if( $height > $width){

		$bili_h = $max_size;
		//计算缩略图的宽度
		$bili_w =  ceil($bili_h * $width / $height);
		
	}else{

		$bili_w = $max_size;
		//计算缩略图的宽度
		$bili_h =  ceil($bili_w * $height / $width);
	}

	//如果生成后的宽高比例比原图要大，用回原图的高度宽度的一半
	if($bili_h > $height){
		return $water_img;
		// $bili_h = $height/2;
	}

	if($bili_w > $width){

		return $water_img;
		// $bili_w = $width/2;
	}

	$data = getimagesize($water_img);

	$type = $data['mime'];


	//2.目标图片径创建图像

	if($type=='image/jpeg'){		//目标图片的图像
		$dimg = imagecreatefromjpeg($water_img);

	}else if($type=='image/png'){
		$dimg = imagecreatefrompng($water_img);

	}else{
		$dimg = imagecreatefromgif($water_img);
	}


	

	//3.创建空白画布
	$simg = imagecreatetruecolor($bili_w , $bili_h);

	//4.将图像拷贝到画布中
	////imagecopyresampled (画布  , 目标图像 ,  画布粘贴的X轴坐标 , 画布粘贴的Y轴坐标 , 目标图像拷贝开始的X坐标 , 目标图像拷贝开始的Y坐标 ,画布的宽度 , 画布的高度,目标图像拷贝的宽度 , 目标图像拷贝的高度  )
	imagecopyresampled($simg , $dimg , 0 , 0 , 0, 0,$bili_w , $bili_h , $width , $height);


	//5.生成图片
	if($type=='image/jpeg'){		//目标图片的图像
		$ress = imagejpeg($simg , $water_img.'.thumb.jpeg');

	}else if($type=='image/png'){
		$ress = imagepng($simg , $water_img.'.thumb.png');

	}else{
		$ress = imagegif($simg , $water_img.'.thumb.gif');
	}
	

	if($ress){

		//生成图片成功：返回
		if($type=='image/jpeg'){		//目标图片的图像

			return $water_img.'.thumb.jpeg';

		}else if($type=='image/png'){

			return $water_img.'.thumb.png';

		}else{
			
			return $water_img.'.thumb.gif';
		}
		

	}else{

		//生成图片失败：false
		return false;
	}

}



function overSize_thumb($water_img,$max_size=800){
	//1.先得知原图的宽度高度
	list($width , $height) = getimagesize($water_img);

	//2.判断原图的宽度比缩略规定的宽度大，进行缩略
	//判断原图的高度比缩略规定的高度大，进行缩略

	if($height > $max_size && $height > $width){

		$bili_h = $max_size;
		//计算缩略图的宽度
		$bili_w =  ceil($bili_h * $width / $height);
		
	}else if($width > $max_size && $width > $height){

		$bili_w = $max_size;
		//计算缩略图的宽度
		$bili_h =  ceil($bili_w * $height / $width);
	}else{
		return $water_img;
	}


	

	$data = getimagesize($water_img);

	$type = $data['mime'];


	//2.目标图片径创建图像

	if($type=='image/jpeg'){		//目标图片的图像
		$dimg = imagecreatefromjpeg($water_img);

	}else if($type=='image/png'){
		$dimg = imagecreatefrompng($water_img);

	}else{
		$dimg = imagecreatefromgif($water_img);
	}


	

	//3.创建空白画布
	$simg = imagecreatetruecolor($bili_w , $bili_h);

	//4.将图像拷贝到画布中
	////imagecopyresampled (画布  , 目标图像 ,  画布粘贴的X轴坐标 , 画布粘贴的Y轴坐标 , 目标图像拷贝开始的X坐标 , 目标图像拷贝开始的Y坐标 ,画布的宽度 , 画布的高度,目标图像拷贝的宽度 , 目标图像拷贝的高度  )
	imagecopyresampled($simg , $dimg , 0 , 0 , 0, 0,$bili_w , $bili_h , $width , $height);


	//5.生成图片
	if($type=='image/jpeg'){		//目标图片的图像
		$ress = imagejpeg($simg , $water_img.'.thumb.jpeg');

	}else if($type=='image/png'){
		$ress = imagepng($simg , $water_img.'.thumb.png');

	}else{
		$ress = imagegif($simg , $water_img.'.thumb.gif');
	}
	

	if($ress){

		//生成图片成功：返回
		if($type=='image/jpeg'){		//目标图片的图像

			return $water_img.'.thumb.jpeg';

		}else if($type=='image/png'){

			return $water_img.'.thumb.png';

		}else{
			
			return $water_img.'.thumb.gif';
		}
		

	}else{

		//生成图片失败：false
		return false;
	}

}




/***************************权限管理菜单******************************************/


function assign($name,$value){
	$GLOBALS['arr'][$name] = $value;
}

function display(){


	extract($GLOBALS['arr']);
	
	$auth_menu = dbselect($con,'authonity');	

	$auth_menuc = child($auth_menu);

	$aid = isset($_GET['aid'])?$_GET['aid']:1;

	$mid = isset($_GET['mid'])?$_GET['mid']:1;

	require("application/admin/views/public/header.html");

	require("application/".M."/views/".C."/".V.".html");

	require("application/admin/views/public/footer.html");


}



//权限管理
function authonity($con){

	//权限验证

	//获取当前页面地址用于查找当前页面权限id
	if(C=='index'){
		$url = '';
	}elseif(V=='index'){

	 	$url = "c=".C;
	}else{
		$url = "c=".C."&v=".V;
	}
	
	/*获取当前页面的权限id*/
	$cur_auth = dbselect($con,'authonity','id',"url='{$url}'");

	$cur_auth_id = $cur_auth[0]['id'];

	

	

	//获取当前管理员所具备的权限id
	$useradmin = $_SESSION['username'];
	 	
	$per_id = dbselect($con,'yonghu','per_id',"username='{$useradmin}'");

	$pe_id = $per_id[0]['per_id'];

	$auth_id = dbselOne($con,'permission','auth_id',$pe_id);
		

	$auth_id_arr = explode(",",$auth_id['auth_id']);

	assign('auth_id_arr',$auth_id_arr);

	//判断当前管理员是否具备访问当前页面的权限
	if($url!=''){
		if(!in_array($cur_auth_id,$auth_id_arr)){

		message('无权访问','index.php?m=admin');
	}
	}
	


	}



?>
